31 research outputs found
A Calculus for Modular Loop Acceleration
Loop acceleration can be used to prove safety, reachability, runtime bounds,
and (non-)termination of programs operating on integers. To this end, a variety
of acceleration techniques has been proposed. However, all of them are
monolithic: Either they accelerate a loop successfully or they fail completely.
In contrast, we present a calculus that allows for combining acceleration
techniques in a modular way and we show how to integrate many existing
acceleration techniques into our calculus. Moreover, we propose two novel
acceleration techniques that can be incorporated into our calculus seamlessly.
An empirical evaluation demonstrates the applicability of our approach
A Calculus for Modular Loop Acceleration and Non-Termination Proofs
Loop acceleration can be used to prove safety, reachability, runtime bounds,
and (non-)termination of programs. To this end, a variety of acceleration
techniques has been proposed. However, so far all of them have been monolithic,
i.e., a single loop could not be accelerated using a combination of several
different acceleration techniques. In contrast, we present a calculus that
allows for combining acceleration techniques in a modular way and we show how
to integrate many existing acceleration techniques into our calculus. Moreover,
we propose two novel acceleration techniques that can be incorporated into our
calculus seamlessly. Some of these acceleration techniques apply only to
non-terminating loops. Thus, combining them with our novel calculus results in
a new, modular approach for proving non-termination. An empirical evaluation
demonstrates the applicability of our approach, both for loop acceleration and
for proving non-termination.Comment: arXiv admin note: substantial text overlap with arXiv:2001.0151
ADCL: Acceleration Driven Clause Learning for Constrained Horn Clauses
Constrained Horn Clauses (CHCs) are often used in automated program
verification. Thus, techniques for (dis-)proving satisfiability of CHCs are a
very active field of research. On the other hand, acceleration techniques for
computing formulas that characterize the N-fold closure of loops have
successfully been used for static program analysis. We show how to use
acceleration to avoid repeated derivations with recursive CHCs in resolution
proofs, which reduces the length of the proofs drastically. This idea gives
rise to a novel calculus for (dis)proving satisfiability of CHCs, called
Acceleration Driven Clause Learning (ADCL). We implemented this new calculus in
our tool LoAT and evaluate it empirically in comparison to other
state-of-the-art tools
Proving Non-Termination by Acceleration Driven Clause Learning
We recently proposed Acceleration Driven Clause Learning (ADCL), a novel
calculus to analyze satisfiability of Constrained Horn Clauses (CHCs). Here, we
adapt ADCL to transition systems and introduce ADCL-NT, a variant for
disproving termination. We implemented ADCL-NT in our tool LoAT and evaluate it
against the state of the art
Inferring Lower Bounds for Runtime Complexity
We present the first approach to deduce lower bounds for innermost runtime complexity of term rewrite systems (TRSs) automatically. Inferring lower runtime bounds is useful to detect bugs and to complement existing techniques that compute upper complexity
bounds. The key idea of our approach is to generate suitable families of rewrite sequences of a TRS and to find a relation between the length of such a rewrite sequence and the size of the first term in the sequence. We implemented our approach in
the tool AProVE and evaluated it by extensive experiments
R+EVUE THE B-SIDE
Visible from only one perspective at a time, architecture suffers the fate of never revealing itself as a whole. An inherent duplicity arises between what can be seen and what remains hidden. The back side—which never shows a representative face nor welcomes us into the building and rarely gets printed in glossy architecture magazines—is the overlooked side of architecture.
As a result, we studied the backs of a few famous buildings. What we found is the B-side of architecture. Liberated from the front’s representative obligations, the B-side is an ambiguous space of programmatic, representative, contextual or even ideological experimentation. We represent our discoveries through a series of analytical and experimental drawings
R+EVUE 20%
Organizational and administrative activities have shed their typological corset. Having cut spatial ties to the office, they are now at home almost anywhere.
According to current studies, around 20% of office space in Germany will be obsolete in the medium term . This corresponds to a floor area of more than 75 million square meters. Calculated against the average per capita living space of 47,7 sqm , this represents enough space to house almost 2 million people.
This equation is grossly simplified. It is problematic for, amongst other reasons, its exclusion of variables such as a building’s structural character, its urban location, and its proximity to technical and social infrastructures.
The current demand for living space - especially in metropolitan areas - and the simultaneous necessity to establish more sustainable architectural practices, makes the conversion of existing buildings inevitable. This brings the above-mentioned issues to the fore, and will require the analysis of these buildings’ potentials and the architectural tools for exploiting them.
R+EVUE 2 presents ten case studies, each making use of the same already-vacant office structure: an administrative building from the 1970s in Hamburg Wansbek. The object under investigation serves as a stand-in for the office buildings which pervade the peripheries of large German cities. Through consideration of this building’s specific structural and urban characteristics, various strategies for reappropriation are examined.
The studies were produced systematically: the same office structure superimposed with ten residential projects, selected to form a broad typological spectrum. The frictions and conflicts which arise during this overlay process become catalysts for specific design solutions and raise more general questions about the reappropriation of existing structures. By adapting the characteristic typological features of the residential buildings to the structure of the office building, new and unexpected approaches are generated.
The depth and extent of each study’s intervention is measurable against the existing structure. In the form of red-yellow plans and visualizations, both demolition measures and structural additions are clearly illustrated.
The excerpt from the portfolio of office buildings is contrasted with a selection of residential building references.
The ten residential building references cover a wide range of different circulation typologies, apartment types, construction principles and scales.
The different housing references are all projected onto the structure of one vacant office building. Because its concrete skeleton is typical for an entire generation of commercial structures, the findings of the housing projections resonate beyond this specific case study
Automatically proving termination and memory safety for programs with pointer arithmetic
While automated verification of imperative programs has been studied intensively, proving termination of programs with explicit pointer arithmetic fully automatically was still an open problem. To close this gap, we introduce a novel abstract domain that can track allocated memory in detail. We use it to automatically construct a symbolic execution graph that over-approximates all possible runs of a program and that can be used to prove memory safety. This graph is then transformed into an integer transition system, whose termination can be proved by standard techniques. We implemented this approach in the automated termination prover AProVE and demonstrate its capability of analyzing C programs with pointer arithmetic that existing tools cannot handle